// import {
//     authRely
// } from '../index';
import {
    // fetchFunc,
    // getApiFetchPath,
    // getApiFetchOptions,
    apiFetch
} from './fetch';

// 刷新票据默认方法
// const defaultRefreshTokenFunc = () => {
//     return authRely.refreshToken();
// };

// 执行请求的实际方法
// const authJsonFetchFunc = (
//     apiPath: string,
//     requestData?: { [key: string]: any },
//     method?: 'GET' | 'POST' | 'PUT' | 'DELETE',
//     overrideApiFullPath?: string,
//     customHeaders?: any,
//     authHeader?: string,
//     authPrefix?: string
// ): Promise<any> => {
//     return new Promise((resolve, reject) => {
//         // 处理请求头
//         const authParams = authRely.getAuthFetchHeader();

//         let headers: any = {};
//         if (undefined !== customHeaders) {
//             headers = Object.assign({}, headers, customHeaders);
//         }
//         headers[authParams.header] = authParams.value;

//         // 处理请求地址
//         const apiFullPath = getApiFetchPath(apiPath, method, requestData, overrideApiFullPath);

//         // 处理请求
//         const fetchOptions: any = getApiFetchOptions(requestData, method, headers);

//         // 执行请求
//         fetchFunc(apiFullPath, fetchOptions)
//             .then((data) => {
//                 resolve(data);
//             }).catch((error) => {
//                 reject(error);
//             });
//     });
// };

/**
 * 发送一个授权的JSON请求
 * @param apiPath [api_url]api/[apiPath]
 * @param method 请求方法
 * @param requestData 需要提交的参数，get时拼接为url，其他方式作为body提交
 * @param overrideApiFullPath 用于不遵守 apiPath 时使用的完整请求路径
 * @param customHeaders 需要附加的自定义请求头
 * @param authHeader 授权请求token所在的头名称
 * @param authPrefix 授权请求token信息的前缀
 * @param overrideRefreshTokenFunc
 */
export const authApiFetch = (
    apiPath: string,
    method?: 'GET' | 'POST' | 'PUT' | 'DELETE',
    requestData?: { [key: string]: any },
    overrideApiFullPath?: string,
    customHeaders?: any,
    authHeader?: string,
    authPrefix?: string
): Promise<any> => {
    return apiFetch(apiPath, method, requestData, overrideApiFullPath, customHeaders);
    // return new Promise((resolve, reject) => {
    //     if (window.__ELE__) {
    //         authJsonFetchFunc(
    //             apiPath,
    //             requestData,
    //             method,
    //             overrideApiFullPath,
    //             customHeaders,
    //             authHeader,
    //             authPrefix
    //         ).then((data) => {
    //             resolve(data);
    //         }).catch((error) => {
    //             reject(error);
    //         });
    //     } else {
    //         // 获取 token
    //         const tokens = authRely.getToken();
    //         if (null === tokens || undefined === tokens) {
    //             reject({
    //                 name: 'Invalid tokens',
    //                 message: '无效的授权票据',
    //                 code: 110122
    //             });
    //         } else {
    //             // 检查是否需要刷新.token
    //             if (authRely.checkTokenExpired(tokens.get('create_on') as number, tokens.get('expires_in') as number)) {
    //                 defaultRefreshTokenFunc()
    //                     .then((newTokens) => {
    //                         // 保存刷新后的 token
    //                         authRely.saveToken(JSON.stringify(newTokens));
    //                         // 执行实际请求
    //                         authJsonFetchFunc(
    //                             apiPath,
    //                             requestData,
    //                             method,
    //                             overrideApiFullPath,
    //                             customHeaders,
    //                             authHeader,
    //                             authPrefix
    //                         ).then((data) => {
    //                             resolve(data);
    //                         }).catch((error) => {
    //                             reject(error);
    //                         });
    //                     }).catch((error) => {
    //                         reject(error);
    //                     });
    //             } else {
    //                 authJsonFetchFunc(
    //                     apiPath,
    //                     requestData,
    //                     method,
    //                     overrideApiFullPath,
    //                     customHeaders,
    //                     authHeader,
    //                     authPrefix
    //                 ).then((data) => {
    //                     resolve(data);
    //                 }).catch((error) => {
    //                     reject(error);
    //                 });
    //             }
    //         }
    //     }
    // });
};
